package com.bajiao.service.store;

import com.bajiao.dto.store.StoreDetailsRequest;
import com.bajiao.dto.store.StoreEditRequest;
import com.bajiao.dto.store.StoreRequest;
import com.bajiao.entity.store.Store;
import com.bajiao.vo.store.*;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * @Description: 店铺表
 * @Author: FanJq
 * @Date:   2024-12-12
 * @Version: V1.0
 */
public interface StoreService extends IService<Store> {

    /**
     * @Description
     * 获取行业列表
     * @date 2024/12/12 17:33
     * @author FanJq
     * @param request
     * @return {@link List< StoreResponse>}
    */
    List<StoreResponse> getStoreList(StoreRequest request);

    /**
     * @Description
     * 获取店铺详情
     * @date 2024/12/13 10:07
     * @author FanJq
     * @param request
     * @return {@link StoreDetailsResponse}
    */
    StoreDetailsResponse getStoreDetails(String userId, StoreDetailsRequest request);

    /**
     * @Description
     * 获取商家名称
     * @date 2024/12/23 10:28
     * @author FanJq
     * @param storeId
     * @return {@link String}
    */
    String getStoreTitle(String storeId);

    /**
     * @Description
     * 修改店铺信息
     * @date 2024/12/26 15:54
     * @author FanJq
     * @param storeId
     * @param request
     * @return
    */
    void modifyStoreInfo(String storeId, StoreEditRequest request);

    /**
     * @Description
     * 店铺财务数据
     * @date 2024/12/27 15:12
     * @author FanJq
     * @param storeId
     * @return {@link StoreStatResponse}
    */
    StoreStatResponse getStoreFinancial(String storeId);

    /**
     * @Description
     * 获取店铺总营业额
     * @date 2024/12/27 17:49
     * @author FanJq
     * @param storeId
     * @return {@link Map< String, String>}
    */
    Map<String, String> getStoreTotalFinancial(String storeId);

    /**
     * @Description
     * 门店商品订单
     * @date 2024/12/28 10:44
     * @author FanJq
     * @param storeId
     * @return {@link List< StoreOrderResponse>}
    */
    List<StoreOrderResponse> getStoreOrderPage(String storeId);

    /**
     * @Description
     * 门店优惠券订单
     * @date 2024/12/28 10:47
     * @author FanJq
     * @param storeId
     * @return {@link List< StoreCouponOrderResponse>}
    */
    List<StoreCouponOrderResponse> getStoreCouponOrderPage(String storeId);

    /**
     * @Description
     * 管理后台列表
     * @date 2025/1/3 16:44
     * @author FanJq
     * @param account
     * @param title
     * @param mobile
     * @return {@link List< StoreAdmin>}
    */
    List<StoreAdmin> getAdminList(String account, String title, String mobile);

    /**
     * @Description
     * 店铺统计列表
     * @date 2025/1/9 17:51
     * @author FanJq
     * @param title
     * @return {@link List< StoreStatistics>}
    */
    List<StoreStatistics> getStatisticsList(String title);

    /**
     * @Description
     * 店铺核销记录
     * @date 2025/1/9 18:06
     * @author FanJq
     * @param keywords
     * @param orderNo
     * @param storeTitle
     * @param title
     * @param createTimeBegin
     * @param createTimeEnd
     * @return {@link List< StoreVerify>}
    */
    List<StoreVerify> getVerifyList(String keywords, String orderNo, String storeTitle, String title, String createTimeBegin, String createTimeEnd);
}
